package com.lotusfall.mybatis.mapper;

import com.lotusfall.mybatis.pojo.Car;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CarMapper {

    /**
     * 根据id批量删除
     * @param ids
     * @return
     */
    int deleteByIds2(@Param("ids")Long [] ids);
    /**
     * 批量插入：一次插入多条记录
     * @param cars
     * @return
     */
    int insertBatch(@Param("cars")List<Car> cars);
    /**
     * 批量删除，foreach标签
     * @param ids
     * @return
     */
    int deleteByIds(@Param("ids")Long [] ids);

    /**
     * 使用Choose when otherwise查询
     * @param brand
     * @param guidePrice
     * @param carType
     * @return
     */
    List<Car> selectByChoose(@Param("brand")String brand,@Param("guidePrice")Double guidePrice,@Param("carType")String carType);

    /**
     * 动态更新Car
     * @return
     */
    int updateBySet(Car car);


    /**
     * 动态更新Car
     * @return
     */
    int updateCar(Car car);

    List<Car> selectByMultiConditionWithTrim(@Param("brand")String brand, @Param("guidePrice")Double guidePrice, @Param("carType")String carType);
    /**
     * 使用where标签，让where更智能
     * @param brand
     * @param guidePrice
     * @param carType
     * @return
     */
    List<Car> selectByMultiConditionWithWhere(@Param("brand")String brand, @Param("guidePrice")Double guidePrice, @Param("carType")String carType);


    /**
     * 多条件查询
     * @param brand 品牌
     * @param guidePrice 指导价
     * @param carType 汽车类型
     * @return
     */
    List<Car> selectByMultiCondition(@Param("brand")String brand, @Param("guidePrice")Double guidePrice, @Param("carType")String carType);
}
